<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>博客详情页</title>
    <link rel="stylesheet" href="css/common.css">
    <link rel="stylesheet" href="css/blog_detail.css">
    <!-- 引入 editor.md 相关的依赖 -->
    <link rel="stylesheet" href="editor.md/css/editormd.min.css">
    <script src="js/jquery.min.js"></script>
    <script src="editor.md/lib/marked.min.js"></script>
    <script src="editor.md/lib/prettify.min.js"></script>
    <script src="editor.md/editormd.js"></script>
</head>
<body>
<!-- 这是一个导航栏 -->
<div class="nav">
    <img src="image/博客头像.jpg" alt="博客头像.jpg加载失败">
    <span>我的博客系统</span>
    <!-- 空白元素，用于占位调整布局 -->
    <div class="spacer"></div>
    <a href="blog_list.html">主页</a>
    <a href="blog_edit.html">写博客</a>
    <a href="logout">注销</a>
</div>
<!-- container作为页面的版心 -->
<div class="container">
    <!-- 左侧个人信息 -->
    <div class="left">
        <!-- 表示整个用户区域 -->
        <div class="card">
            <img src="image/个人信息头像.png" alt="个人信息头像.png加载失败">
            <h3></h3>
            <a href="#">github 地址</a>
            <div class="counter">
                <span>文章</span>
                <span>分类</span>
            </div>
            <div class="counter">
                <span>2</span>
                <span>1</span>
            </div>
        </div>
    </div>
    <!-- 右侧内容详情 -->
    <div class="right">
        <!-- 使用该div展示博客内容 -->
        <div class="blog-content">
            <!-- 标题 -->
            <h3>【零基础学C】初识C语言01</h3>
            <!-- 博客发布时间 -->
            <div class="date">
                2022-10-16 17:20:00
            </div>
            <!-- 正文 -->
            <div id="content" style="opacity: 70%;">

            </div>
        </div>
    </div>
</div>

<script>
    function getBlogDetail(){
        $.ajax({
            type: 'get',
            // location.search 拿到了形如 '?blogId=5' 这样的一段内容
            url: 'blog' + location.search,
            success: function(body){
                // 根据 body 中的内容来构造页面
                // 1. 构造博客页标题
                let h3 = document.querySelector(".blog-content>h3");
                h3.innerHTML = body.title;
                // 2. 构造博客发布时间
                let dateDiv = document.querySelector(".date");
                dateDiv.innerHTML = body.postTime;
                // 3. 构造博客正文
                // 如果直接把 content 放入 innerHTML 则还是 markdown 格式
                // 需要使用 editor.md 进行渲染
                editormd.markdownToHTML('content', {
                    markdown: body.content
                });
            }
        });
    }

    getBlogDetail();

    // 从服务器获取当前作者的用户信息, 并显示在页面上
    function getAuthorInfo(user){
        $.ajax({
            type: 'get',
            url: 'authorInfo' + location.search,
            success: function(body){
                // 此处的 body 就是服务器返回的 user 对象
                if (body.username) {
                    // 如果响应中的 username 存在, 则直接更新到页面上
                    changeUsername(body.username);
                    if (user.username == body.username) {
                        // 如果登录的用户和发布文章的用户为同一个人
                        // 在详情页的导航栏添加一个删除按钮
                        let navDiv = document.querySelector(".nav");
                        let a = document.createElement("a");
                        a.innerHTML = "删除";
                        a.href = "blogDelete" + location.search;
                        navDiv.appendChild(a);
                    }
                } else {
                    console.log("获取作者信息失败! " + body.reason);
                }
            }
        });
    }

    function getUserInfo(pageName){
        $.ajax({
            type: 'get',
            url: 'login',
            success: function(body){
                // 判断此处的 body 是不是一个有效的 user 对象(userId = 0无效)
                if (body.userId && body.userId > 0) {
                    // 登录成功
                    console.log("当前用户登录成功! 用户名：" + body.username);
                    if (pageName == 'blog_list.html') {
                        // 更新用户名
                        changeUsername(body.username);
                    }
                    // 判断当前登录的用户和作者是否相同
                    getAuthorInfo(body);

                } else {
                    // 登录失败 提示信息 并跳转到 login.html
                    alert("当前未登录, 请登录后重试！");
                    location.assign('blog_login.html');
                }
            },
            error: function(){
                alert("当前未登录, 请登录后重试！");
                location.assign('blog_login.html');
            }
        });
    }
    // 获取当前用户的登录状态
    getUserInfo('blog_detail.html');

    // 用于更新用户名信息的方法
    function changeUsername(username){
        let h3 = document.querySelector(".card>h3");
        h3.innerHTML = username;
    }

</script>

</body>
</html>